<?php
/**
 * Lớp hỗ trợ các vấn đề liên quan đến mảng
 * @author Mr.UBKey
 */
class XPHP_Array
{
	/**
	 * Phương thức chuyển mảng thành đối tượng
	 * @param array $arr
	 */
	public static function toObject($arr)
	{
		$o = new stdClass();
		
		foreach ($arr as $key => $value)
		{
			if(!is_array($value))
				$o->$key = $value;
			else 
			{
				$o->$key = self::toObject($value);
			}
		}
		return $o;
	}
	
	/**
	 * Phương thức chuyển file xml thành mảng.
	 * @param string $xmlUrl
	 */
	public static function xmlToArray($xmlUrl,$arrSkipIndices = array())
	{
		$arrData = array();
		//Neu du lieu nhap vao la kieu chuoi:
	    if (is_string($xmlUrl))
	    {
	    	$xmlStr = file_get_contents($xmlUrl);
			$xmlUrl = simplexml_load_string($xmlStr);
	    }
		
	    //Neu du lieu nhap vao la object
	    if (is_object($xmlUrl)) {
	        $xmlUrl = get_object_vars($xmlUrl);
	    }
	    
	    if (is_array($xmlUrl)) {
	        foreach ($xmlUrl as $index => $value) {
	            if (is_object($value) || is_array($value)) {
	                $value = XPHP_Array::xmlToArray($value); // recursive call
	            }
	            if (in_array($index, $arrSkipIndices)) {
	                continue;
	            }
	            $arrData[$index] = $value;
	        }
	    }
	    return $arrData;
	}
	
	public static function secure($array)
	{
		require_once 'XPHP/String.php';
		
		for($i = 0; $i < sizeof($array); $i++)
		{
			if(is_string($array[$i]))
				$array[$i] = XPHP_String::secure($array[$i]);
			else if(is_array($array[$i]))
				$array[$i] = self::secure($array[$i]);
		}
		
		return $array;
	}
}